Pour rester "indépendant" comme vous le dites pour la base de données et le fournisseur JPA, j'éviterais le getSingleResult() et récupérerais la liste() et correspondrais en mémoire pour le nom. Vous en obtiendrez probablement plus d'un mais pas 100 ou plus.
Une autre façon pourrait être d'enregistrer le nom normalisé (coupé, en minuscules) dans un nouveau champ.