PostgreSQL diferencia maiúsculas de minúsculas, isso pode ser um problema aqui DISTINCT ON pode ser usado para pesquisa sem distinção entre maiúsculas e minúsculas (testado em 7.4)
SELECT DISTINCT ON (upper(name)) name FROM names ORDER BY upper(name);