A stored procedure cannot be changed without the ALTER PROCEDURE statement. Your statement the stored procedure "has changed itself" indicates someone executed code to drop/recreate or alter the existing stored procedure.You can look in SSMS at the properties of a stored procedure to see the date the procedure was created. This could help you when the modification has been done with a DROP/CREATE statement.
If this happens without your knowledge and you want logging when it happens consider creating a DDL trigger on the database.