Ответ Георгия наилучшим образом решает вопрос, который я задал, поэтому для будущих читателей это может быть правильным ответом.
Однако для моей ситуации я использовал другой подход, я инкапсулировал эту функцию обмена таблицами в процедуру, которая выглядит следующим образом:
create function table_swap(p_target character varying)
returns TABLE(id int)
language plpgsql
as $$
begin
case
when p_target = 'a' then
return query
select * from table_a;
when p_target = 'b' then
return query
select * from table_b;
else
return;
end case;
, которая затем позволила мне сделать следующее
select * from table_swap(p_target);