Puede crear el índice y transformar el campo a mayúsculas o minúsculas. Luego, cuando haga sus consultas, puede hacer la misma transformación y hará lo correcto.
Entonces:
CREATE UNIQUE INDEX lower_case_username ON users ((lower(username)));
Luego consulta por lo mismo:
SELECT username FROM users WHERE lower(username) = 'bob';