Aby pozostać "niezależnym", jak mówisz dla bazy danych i dostawcy JPA, unikałbym getSingleResult() i pobierał list() i dopasowywał w pamięci nazwę. Prawdopodobnie dostaniesz więcej niż jeden, ale nie 100 lub więcej.
Innym sposobem może być zapisanie nazwy znormalizowanej (przyciętej do małych liter) w nowym polu.