PostgreSQL fa distinzione tra maiuscole e minuscole, questo potrebbe essere un problema qui DISTINCT ON può essere utilizzato per la ricerca senza distinzione tra maiuscole e minuscole (testato su 7.4)
SELECT DISTINCT ON (upper(name)) name FROM names ORDER BY upper(name);