The natural green that comes about from natural weathering can be prevented by applying a barrier between the copper and the elements . Years ago I applied oil to some brand new copper gutters and downspouts. The statuary finish did last for a couple of years but the green patina eventually won out because the oil has to be re-applied every three years.
If you want to keep a copper gutters or roofing shiny, these are the two ways that I know of on how to do it.
1)Coating with oil:
If you want to prevent that patina from forming, Linseed oil works pretty well. The linseed I used was raw and I coated the gutters with one thin coat. After I let everything completely dry, I Then applied a second coat. Much to my surprise, it took around 8 years before the copper started to turn brown. If would have stayed shiny if I kept re-coating the gutters every 3 to 4 years.
2)Coating with ProtectaClear Coatings
There is a product called protectaClear that is made for the very purpose of keeping copper shiny. I have never used this product but it looks like it is a clear protective coating. It is made of polymer resins in a solvent base. The advantage this product has over linseed oil is that it only needs to be applied in one coat. Also it lasts longer having to be reapplied every 5 to 10 years.
At first I thought I had discovered a third product to add to my post. It is called CopperCoat. CopperCoat is put out by Woodlife (or is it Rust-Oleum?) and I though "Aha, I new a wood sealer would work great on copper!" Unfortunately CopperCoat Is a wood sealer that is not recommended for copper. It's called CopperCoat simply because of it's green color. :(