Redshift table not showing up in tables for schema?
PG_TABLE_DEF in Redshift only returns information about tables that are visible to the user, in other words, it will only show you the tables which are in the schema(s) which are defined in variable search_path. If PG_TABLE_DEF does not return the expected results, verify that the search_path parameter is set correctly to include the relevant schema(s).

Try this - 

mydb=# set search_path="$user",db;


Then run your query -

mydb=# select tablename from pg_table_def where schemaname = 'db';