El estándar ANSI SQL requiere doblar los nombres de las tablas (sin comillas) a mayúsculas.
Tu puedes cree tablas (y columnas) con nombres en minúsculas usando un identificador entre comillas (nuevamente, esto sigue el estándar SQL):
CREATE TABLE "foo"
(
"id" integer,
"SomeColumn" varchar(100)
);
Sin embargo, le recomiendo encarecidamente que no haz eso.
Una vez que haya creado sus tablas de esa manera, debe siempre use comillas dobles porque cualquier nombre que no esté entre comillas (siguiendo las reglas para los identificadores de SQL) se doblará nuevamente a mayúsculas y, por lo tanto, no coincidirá con el nombre tal como está almacenado en los catálogos del sistema.
Por lo tanto, la siguiente declaración no trabajo:
SELECT id, somecolumn FROM foo;
Tienes que usar un identificador entrecomillado:
SELECT "id", "SomeColumn" FROM "foo";
Para obtener más detalles sobre los identificadores (citados), lea el capítulo Reglas de nomenclatura de objetos de base de datos en el manual.