You can't get the CREATE as a single row because it might be more than the maximum VarChar size (or you want it as a CLOB).
Plus RequestText is not reliable for tables, you can only create all the SHOWs using SQL like this:
SELECT 'SHOW TABLE "' || TRIM(Databasename) || '"."' || TRIM(Tablename) || '";'
WHERE DatabaseName = 'xxxx'
AND Tablekind = 'T'
ORDER BY 1;
And then run the result. This is usually done as a BTEQ script...
Regarding the result of a SHOW as a function, have a look at Glenn McCall's article how to solve this: