WITH RECURSIVE date_range AS (
SELECT date'2019-01-03' dateval, 0 mes /*start date, use cast(? as date) if you need a parameter */
FROM rdb$database
UNION ALL
SELECT DATEADD(MONTH,1,dateval), mes + 1
FROM date_range
WHERE mes < 12 /* end date */
)
SELECT *
FROM date_range;