In 2017 I was mired with the pesky Upgrade Available/ Upgrade Required messages in DEV/ UAT and PRODUCTION.
Here is a summary what I learnt. Through my own and with some excellent Microsoft Engineers.
First thing you do is:
stsadm -o localupgradestatus
The above will be given in the Managed Servers in Farm screen if anything needs upgrade.
When it was run in PRODUCTION, I got the following summary:
[18] content database(s) encountered.
[0] content database(s) still need upgrade or cannot be upgraded.
[7605] site collection(s) are contained in the content databases.
[1] site collection(s) still need upgrade.
[41] other objects encountered, [1] of them still need upgrade or cannot be upgraded.

Here the line of interest is the underlined one. If you see the details, you will see messages like the following:

http://your site
Needs Upgrade

At this stage, I tend to move the above site to it’s own dedicated database. And then detach and reattach. You can do it via the Central Admin. Or you can do it via:

Here are some additional information:
Be fearless about clearing config cache. Do it manually. Do it here:
If you mistakenly delete the config cache.ini file, you will need to reinstall SP. Never do it, even in your worst nightmare.

Run the following from command line:
PSConfig.exe -cmd upgrade -inplace b2b -wait

If the above does not work, take it a step further and try the following:
PSConfig.exe -cmd upgrade -inplace b2b -wait -force

Sometimes you need to check and delete one time timer jobs that stay hanging.
To Check:
Get-SPTimerJob | where{$_.schedule.description -eq “One-time”}

Sometimes, you will see Upgrade Running forever. Try the following:
stsadm -o setproperty -pn command-line-upgrade-running -pv No

You may have to wait for good bit of time even after running the above for the Upgrade In Progress message to disappear.

Happy Upgrade Required removal.