'Executes DB query
:param query: Query to execute
:param args: Arguments in query
:param fetchall: Boolean to indicate all results must be fetched
:param fetchone: Boolean to indicate one result must be fetched (to walk results for instance)
:return: query results'

def _execute(self, query, args=None, fetchall=False, fetchone=False):

    try:
        if (not args):
            sql_results = self.connection.cursor().execute(query)
        else:
            sql_results = self.connection.cursor().execute(query, args)
        if fetchall:
            return sql_results.fetchall()
        elif fetchone:
            return sql_results.fetchone()
        else:
            return sql_results
    except Exception:
        raise
