La respuesta resultó ser muy simple. Spring Boot tiene una propiedad de separador DataSource que se puede configurar en el archivo application.properties:
spring.datasource.separator=^;
Luego, en el archivo schema.sql todo ;
las declaraciones que no están dentro del procedimiento almacenado deben actualizarse con el nuevo separador.
DROP PROCEDURE IF EXISTS `database`.FOO;
CREATE PROCEDURE `database`.FOO()
BEGIN
SELECT * from `database`.employees;
END ^;