For starters ...
SELECT * FROM INFORMATION_SCHEMA.ROUTINES ...
Robust ... and more robust if used in conjunction with some known information such as table columns:
SPECIFIC_CATALOG SPECIFIC_SCHEMA SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE MODULE_CATALOG MODULE_SCHEMA MODULE_NAME UDT_CATALOG UDT_SCHEMA UDT_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH COLLATION_CATALOG COLLATION_SCHEMA COLLATION_NAME CHARACTER_SET_CATALOG CHARACTER_SET_SCHEMA CHARACTER_SET_NAME NUMERIC_PRECISION NUMERIC_PRECISION_RADIX NUMERIC_SCALE DATETIME_PRECISION INTERVAL_TYPE INTERVAL_PRECISION TYPE_UDT_CATALOG TYPE_UDT_SCHEMA TYPE_UDT_NAME SCOPE_CATALOG SCOPE_SCHEMA SCOPE_NAME MAXIMUM_CARDINALITY DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS IS_NULL_CALL SQL_PATH SCHEMA_LEVEL_ROUTINE MAX_DYNAMIC_RESULT_SETS IS_USER_DEFINED_CAST IS_IMPLICITLY_INVOCABLE CREATED LAST_ALTERED