docs: def get_ships_that_have_variations(db_connection):
      """ Gets a list of all published ship type IDs that have at least 3 variations.
  
      :return:
      :rtype: list
      """
  
      if not hasattr(get_ships_that_have_variations, '_results'):
          sql = 'CALL get_ships_that_have_variations();'
          results = execute_sql(sql, db_connection)
          get_ships_that_have_variations._results = results
  
      return get_ships_that_have_variations._results