SHOW CREATE PROCEDURE procedure_name not showing the procedure content
It just dawned on me. You must be using MySQL 8.0

I just heard about this headache not too long ago.

The SHOW CREATE PROCEDURE for MySQL 8.0 does not show a body column anymore.

The design of INFORMATION_SCHEMA.ROUTINES is also different for MySQL 8.0. 

Someone wrote about this 4 months ago (See No more mysql.proc in MySQL 8.0). This paradigm will take getting used to. Personally, I am not comfortable with it, but we need to just get used to it.

You also gotta wrap your head around INFORMATION_SCHEMA.PARAMETERS, which itemizes each parameter passed to a stored procedure.

Just to skip all this other yucky stuff, MySQL 8.0 FAQ says the following:


  Stored procedures are stored in the mysql.routines and
  mysql.parameters tables, which are part of the data dictionary. You
  cannot access these tables directly. Instead, query the
  INFORMATION_SCHEMA ROUTINES and PARAMETERS tables. See Section 25.19,
  “The INFORMATION_SCHEMA ROUTINES Table”, and Section 25.12, “The
  INFORMATION_SCHEMA PARAMETERS Table”.
  
  You can also use SHOW CREATE FUNCTION to obtain information about
  stored functions, and SHOW CREATE PROCEDURE to obtain information
  about stored procedures. See Section 13.7.6.9, “SHOW CREATE PROCEDURE
  Syntax”.


I will leave it to you to reserch the rest of this.