1. A method of retrieving data from a database, the method comprising: receiving, from a user, a search request comprising search keywords for a set of data in at least one database; performing, in response to receiving the search request from the user, an ontology query over at least one ontology associated with at least one database resulting in an ontological dataset associated with the search request, wherein the ontological dataset comprises at least one of a set of synonyms, a set of hypernyms, and a set of hyponyms associated with the search request; performing, in response to performing the ontology query, a data query over data in the at least one database using a union of the ontological dataset with the search keywords in the search request, wherein performing the data query further comprises: searching for a first set of data records associated with the search keywords; and searching for a second set of data records associated with the ontological dataset: and returning the set of data to the user based on searching for the first set of data records and the second set of data records, wherein returning the set of data to the user further comprises: dynamically adding a column to a table comprising the set of data in the at least one database, wherein each row in the column that has been added comprises a grouping annotation associated with a corresponding data entry in the set of data.