def METHOD_NAME(  # pylint: disable=too-many-arguments, too-many-locals
    source_dataset_id: str,
    source_table_id: str,
    source_table_address_column: str,
    destination_dataset_id: str,
    destination_table_id: str,
    georef_mode: str,
    current_flow_labels: List[str],
) -> Tuple[pd.DataFrame, bool]:
    """
    Get new addresses from source table
    """
    new_addresses = pd.DataFrame(columns=["address"])
    exists_new_addresses = False
    source_table_ref = f"{source_dataset_id}.{source_table_id}"
    destination_table_ref = f"{destination_dataset_id}.{destination_table_id}"
    billing_project_id = current_flow_labels[0]
    if georef_mode == "distinct":
        query_source = f"""
        SELECT DISTINCT
            {source_table_address_column}
        FROM
            `{source_table_ref}`
        """
        query_destination = f"""
        SELECT DISTINCT
            address
        FROM
            `{destination_table_ref}`
        """
        source_addresses = bd.read_sql(
            query_source, billing_project_id=billing_project_id, from_file=True
        )
        source_addresses.columns = ["address"]
        try:
            destination_addresses = bd.read_sql(
                query_destination, billing_project_id=billing_project_id, from_file=True
            )
            destination_addresses.columns = ["address"]
        except Exception:  # pylint: disable=broad-except
            destination_addresses = pd.DataFrame(columns=["address"])
        # pylint: disable=invalid-unary-operand-type
        new_addresses = source_addresses[
            ~source_addresses.isin(destination_addresses)
        ].dropna()
        exists_new_addresses = not new_addresses.empty
    return new_addresses, exists_new_addresses