The following SQL works much better. It uses the pg_relation_filepath() function. It works for me like a charm in postgresql v12.
WITH cte AS
(SELECT
table_name,
pg_relation_filepath(table_name::text) AS path
FROM information_schema.tables
WHERE table_type = 'BASE TABLE'
AND table_schema = 'public'
)
SELECT *, (SELECT creation FROM pg_stat_file(path)) AS creation_time, (SELECT change FROM pg_stat_file(path)) AS change_time
FROM cte
Note: In my case all my creation times are empty for some reason, while update and change times are ok.