abstraction – Which pattern to refactor this SLA problem of high level code inside if/else?

I have some code where the SLA (single level of abstraction) principle is broken in a way that the low-level code (if-statements) is outside and the high level code is nested inside the cases. A simplified version of the code is:

public void GenerateReport(int effort, bool delayed)
{
    if (effort < 5)
    {
        GenerateSimpleReport();
    }
    else if (effort < 20)
    {
        GenerateNormalReport();
    }
    else if (delayed)
    {
        GenerateDangerReport();
    }
    else
    {
        GenerateAwesomeReport();
    }
}

Which design pattern would be helpful here to refactor this code so that the SLA principle would be obeyed? If available, I’d like to use a well-known, documented pattern and not come up with an “idea”.

I am aware that the code likely violates other principles as well, such as SRP (single responsibility), because it does 4 things instead of 1. However, I’d like to concentrate on the SLA aspect at the moment.