You can also use
select o.name as ProcedureName
, db_name(parent_object_id) as DatabaseName
--, sm.definition
, o.create_date as CreateDate
, o.modify_date as LastAlteredDate
from sys.sql_modules sm
inner join sys.objects o on sm.object_id = o.object_id
Benefit is the definition here is nvarchar(max) whereas in information_schema.routines it is nvarchar(4000)
Cheers