docs: def get_groups(self, filterTerm=None, groupName=None, groupDomain=None):
          """
          Return groups from the database
          """
          if groupDomain:
              groupDomain = groupDomain.split('.')[0].upper()
  
          cur = self.conn.cursor()
  
          if self.is_group_valid(filterTerm):
              cur.execute("SELECT * FROM groups WHERE id=? LIMIT 1", [filterTerm])
  
          elif groupName and groupDomain:
              cur.execute("SELECT * FROM groups WHERE LOWER(name)=LOWER(?) AND LOWER(domain)=LOWER(?)", [groupName, groupDomain])
  
          elif filterTerm and filterTerm !="":
              cur.execute("SELECT * FROM groups WHERE LOWER(name) LIKE LOWER(?)", ['%{}%'.format(filterTerm)])
  
          else:
              cur.execute("SELECT * FROM groups")
  
          results = cur.fetchall()
          cur.close()
          logging.debug('get_groups(filterTerm={}, groupName={}, groupDomain={}) => {}'.format(filterTerm, groupName, groupDomain, results))
          return results