Saludos a todos, haciendo algunas modificaciones al codigo del SP sugerido por Lepe y utilizando un Execute Block obtendrás lo que buscas:
Código SQL
[-]
EXECUTE BLOCK returns(
GENERADOR VARCHAR(40),
VALOR BIGINT)
AS
BEGIN
for EXECUTE STATEMENT 'select rdb$generator_name from rdb$generators'
into :GENERADOR
do
begin
EXECUTE STATEMENT 'Select gen_id ('||:GENERADOR||',0) from rdb$database'
into :valor;
suspend;
end
END
yo tengo Firebird 2.0.4 dialecto 3 y me funcionó a la perfección, espero que atí tambien

.