Thanks for your suggestions. I managed to get the desired result using a query as it was much easier as you suggested. I'm posting my answer as it might help someone in the future
try{
String MYQUERY = "select DISTINCT lower(column1) as col1 from TABLE order by col1 asc";
List<(Object)> myList = null;
SQLQuery query = getSession().createSQLQuery(MYQUERY);
query.setResultTransformer(Transformers.aliasToBean(className));
query.addScalar("col1", StandardBasicTypes.STRING);
myList = query.list();
} catch (HibernateException e) {
System.out.println(e);
}
Thanks again!