<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def _next_datetime_with_utc_hour(table_name, utc_hour):
    '''
    Datapipeline API is throttling us, as all the pipelines are started at the same time.
    We would like to uniformly distribute the startTime over a 60 minute window.

    Return the next future utc datetime where
        hour == utc_hour
        minute = A value between 0-59 (depending on table name)
        second = A value between 0-59 (depending on table name)
    '''
    today = datetime.date.today()

    # The minute and second values generated are deterministic, as we do not want
    # pipeline definition to change for every run.
    start_date_time = datetime.datetime(
        year=today.year,
        month=today.month,
        day=today.day,
        hour=utc_hour,
        minute=_get_deterministic_value_for_table_name(table_name, 60),
        second=_get_deterministic_value_for_table_name(table_name, 60)
    )

    if start_date_time < datetime.datetime.utcnow():
        one_day = datetime.timedelta(days=1)
        start_date_time += one_day

    return start_date_time